﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Npgsql;

namespace VoteInformationSystem.Models
{
    public class NpgsqlPlaetzeverteilungBundestagRepository : IPlaetzeverteilungBundestagRepository
    {
        public IEnumerable<PlaetzeverteilungBundestag> GetPlaetzeVerteilung(int Jahr)
        {
            IList<PlaetzeverteilungBundestag> plaetzeverteilungBundestag = new List<PlaetzeverteilungBundestag>();

            using (NpgsqlConnection pgConnection = NpgsqlConnectionProvider.GetConnection())
            using (NpgsqlCommand command = new NpgsqlCommand("select \"Parteien\".\"pname\", AnzahlPlaetze, \"Parteien\".Farbe from (\"Parteien\" join \"Plaetzeverteilung\"(:jahr) using(idpartei))", pgConnection))
            {
                command.Parameters.Add(new NpgsqlParameter("jahr", NpgsqlTypes.NpgsqlDbType.Integer));
                command.Prepare();
                command.Parameters.First<NpgsqlParameter>().Value = Jahr;
                using (NpgsqlDataReader dataReader = command.ExecuteReader())
                {
                    while (dataReader.Read())
                    {
                        plaetzeverteilungBundestag.Add(new PlaetzeverteilungBundestag() { Parteiname = dataReader.GetString(0), AnzahlPlaetze = dataReader.GetInt32(1), Farbe = dataReader.GetString(2) });
                    }
                }
            }

            return plaetzeverteilungBundestag;
        }
    }
}